package com.roy.io;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author ：楼兰
 * @date ：Created in 2021/8/5
 * @description:
 **/

public class FileIODemo1 {
    public static void main(String[] args) throws IOException {
        File f = new File("D://test1.txt");
        if(!f.exists()){
            f.createNewFile();
        }
        FileOutputStream fis = new FileOutputStream(f);
        for (int i = 0; i < 100; i++) {
            //每一次write就会调用一次write的系统调用
            fis.write("a".getBytes("utf-8"));
            //这个flush是个空方法，什么都没做
            fis.flush();
            //write系统调用只会把内容写入到page cache，不会写到磁盘。需要进行一次fsync系统调用才会写入硬件。
            //对于写到page cache里的文件，程序可以正常读，但是服务器重启后就会丢数据。
            //操作系统会有统一的机制将page cache写入硬盘。但是不及时。
            //他是通过统计page cache中修改过的页(脏页)的比例。达到一个阈值后就会统一将page cache写入到硬件。
        }
        fis.close();
    }
}
